#ifndef __TURN_NECK_TO_BEHAIVOUR__
#define __TURN_NECK_TO_BEHAIVOUR__

#include "../ModuleInterface.h"
#include "../CommonFunctions.h"
#include "AlignNeckBehaviour.h"
#include "TurnNeckToAuxBehaviour.h"

/* Konstanty signalizujuce zmeny v pohlade a krku pre funkciu NeckSynchronizationWithVI */

// Konstanta signalizujuca funkcii NeckSynchronizationWithVI, ze prisla nova viualna informacia
// a treba okamzite poslat prikaz TurnNeck na server
#define NEW_VI 1000
//zmena uhla pohladu na uzky
#define NAR_VIEW 1001
//zmena uhla pohladu na siroky
#define NOR_VIEW 1002
//zarovnanie krku
#define ALIG_NECK 1003

/*
 * Otocenie krku na urcite miesto.
 *
 */

class TurnNeckToBehaviour : public ModuleInterface
{
public:
	virtual void Behave(const Point& futurePosition, const Point& myFuturePosition, float nextTurn = 0);
	void NeckSynchronizationWithVI(int mode);
private:
	USE_MODULE(AlignNeckBehaviour)
	USE_MODULE(TurnNeckToAuxBehaviour)
};

#endif
